#ifndef __LINKSTACK_H_
#define __LINKSTACK_H_

#include "DoubleLinkList.h"
#include <stdbool.h>

//不能写变量，只能写指针
struct LinkStack;
typedef struct LinkStack LStack;

//栈的初始化
LStack* InitLStack();
//入栈(尾插)
void SPush(LStack *s,ElementType element);
//出栈(尾删)
void SPop(LStack *s);
//获取栈顶元素
ElementType* GetSTop(LStack *s);
//栈是否为空
bool IsStackEmpty(LStack *s);
//栈元素数量
int GetStackLen(LStack *s);

//遍历栈
void TravelLStack(LStack *s,void(*funcPtr)(ElementType));
//清空栈
void ClearLStack(LStack *s,void (*clearPtr)(ElementType));


#endif